﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DDD;
using Xunit;
using OpenTK;
using OpenTK.Graphics;
using OpenTK.Graphics.OpenGL;

/*
namespace DokiDokiTest.OpenTK {
    public class TestOpenTKExtensions {

        /// <summary>
        /// Attribute変数型のテスト
        /// </summary>
        /// <remarks>
        /// DDDではAttibute変数の型とUniform変数の型を区別しない。
        /// </remarks>
        [Fact]
        public void Test_ActiveAttributeType_ToDDD () {
            Assert.Equal (ShaderVariableType.Float, ActiveAttribType.Float.ToDDD ());
            Assert.Equal (ShaderVariableType.Vec2, ActiveAttribType.FloatVec2.ToDDD ());
            Assert.Equal (ShaderVariableType.Vec3, ActiveAttribType.FloatVec3.ToDDD ());
            Assert.Equal (ShaderVariableType.Vec4, ActiveAttribType.FloatVec4.ToDDD ());
            Assert.Equal (ShaderVariableType.Int, ActiveAttribType.Int.ToDDD ());
            Assert.Equal (ShaderVariableType.IVec2, ActiveAttribType.IntVec2.ToDDD ());
            Assert.Equal (ShaderVariableType.IVec3, ActiveAttribType.IntVec3.ToDDD ());
            Assert.Equal (ShaderVariableType.IVec4, ActiveAttribType.IntVec4.ToDDD ());
            Assert.Equal (ShaderVariableType.UInt, ActiveAttribType.UnsignedInt.ToDDD ());
            Assert.Equal (ShaderVariableType.UIVec2, ActiveAttribType.UnsignedIntVec2.ToDDD ());
            Assert.Equal (ShaderVariableType.UIVec3, ActiveAttribType.UnsignedIntVec3.ToDDD ());
            Assert.Equal (ShaderVariableType.UIVec4, ActiveAttribType.UnsignedIntVec4.ToDDD ());
            Assert.Equal (ShaderVariableType.Mat2x2, ActiveAttribType.FloatMat2.ToDDD ());
            Assert.Equal (ShaderVariableType.Mat3x3, ActiveAttribType.FloatMat3.ToDDD ());
            Assert.Equal (ShaderVariableType.Mat4x4, ActiveAttribType.FloatMat4.ToDDD ());
            Assert.Equal (ShaderVariableType.Unknown, ActiveAttribType.Double.ToDDD ());
        }

        /// <summary>
        /// Uniform変数型のテスト
        /// </summary>
        /// <remarks>
        /// DDDではAttibute変数の型とUniform変数の型を区別しない。
        /// </remarks>
        [Fact]
        public void Test_ActiveUniformType_ToDDD () {
            Assert.Equal (ShaderVariableType.Float, ActiveUniformType.Float.ToDDD ());
            Assert.Equal (ShaderVariableType.Vec2, ActiveUniformType.FloatVec2.ToDDD ());
            Assert.Equal (ShaderVariableType.Vec3, ActiveUniformType.FloatVec3.ToDDD ());
            Assert.Equal (ShaderVariableType.Vec4, ActiveUniformType.FloatVec4.ToDDD ());
            Assert.Equal (ShaderVariableType.Int, ActiveUniformType.Int.ToDDD ());
            Assert.Equal (ShaderVariableType.IVec2, ActiveUniformType.IntVec2.ToDDD ());
            Assert.Equal (ShaderVariableType.IVec3, ActiveUniformType.IntVec3.ToDDD ());
            Assert.Equal (ShaderVariableType.IVec4, ActiveUniformType.IntVec4.ToDDD ());
            Assert.Equal (ShaderVariableType.UInt, ActiveUniformType.UnsignedInt.ToDDD ());
            Assert.Equal (ShaderVariableType.UIVec2, ActiveUniformType.UnsignedIntVec2.ToDDD ());
            Assert.Equal (ShaderVariableType.UIVec3, ActiveUniformType.UnsignedIntVec3.ToDDD ());
            Assert.Equal (ShaderVariableType.UIVec4, ActiveUniformType.UnsignedIntVec4.ToDDD ());
            Assert.Equal (ShaderVariableType.Bool, ActiveUniformType.Bool.ToDDD ());
            Assert.Equal (ShaderVariableType.BVec2, ActiveUniformType.BoolVec2.ToDDD ());
            Assert.Equal (ShaderVariableType.BVec3, ActiveUniformType.BoolVec3.ToDDD ());
            Assert.Equal (ShaderVariableType.BVec4, ActiveUniformType.BoolVec4.ToDDD ());
            Assert.Equal (ShaderVariableType.Mat2x2, ActiveUniformType.FloatMat2.ToDDD ());
            Assert.Equal (ShaderVariableType.Mat3x3, ActiveUniformType.FloatMat3.ToDDD ());
            Assert.Equal (ShaderVariableType.Mat3x4, ActiveUniformType.FloatMat3x4.ToDDD ());
            Assert.Equal (ShaderVariableType.Mat4x4, ActiveUniformType.FloatMat4.ToDDD ());
            Assert.Equal (ShaderVariableType.Sampler2D, ActiveUniformType.Sampler2D.ToDDD ());
            Assert.Equal (ShaderVariableType.Sampler2DShadow, ActiveUniformType.Sampler2DShadow.ToDDD ());
            Assert.Equal (ShaderVariableType.SamplerCube, ActiveUniformType.SamplerCube.ToDDD ());
            Assert.Equal (ShaderVariableType.Unknown, ActiveUniformType.Double.ToDDD ());            
        }
    }
}
*/